/*    */ package blockbuster.components.motion;
/*    */ 
/*    */ import blockbuster.components.BedrockComponentBase;
/*    */ import blockbuster.components.IComponentParticleInitialize;
/*    */ import blockbuster.emitter.BedrockEmitter;
/*    */ import blockbuster.emitter.BedrockParticle;
/*    */ import blockbuster.math.molang.MolangException;
/*    */ import blockbuster.math.molang.MolangParser;
/*    */ import blockbuster.math.molang.expressions.MolangExpression;
/*    */ import com.google.gson.JsonArray;
/*    */ import com.google.gson.JsonElement;
/*    */ 
/*    */ public class BedrockComponentInitialSpeed
/*    */   extends BedrockComponentBase implements IComponentParticleInitialize {
/* 15 */   public MolangExpression speed = MolangParser.ONE;
/*    */   
/*    */   public MolangExpression[] direction;
/*    */ 
/*    */   
/*    */   public BedrockComponentBase fromJson(JsonElement element, MolangParser parser) throws MolangException {
/* 21 */     if (element.isJsonArray()) {
/*    */       
/* 23 */       JsonArray array = element.getAsJsonArray();
/*    */       
/* 25 */       if (array.size() >= 3)
/*    */       {
/* 27 */         this.direction = new MolangExpression[] { parser.parseJson(array.get(0)), parser.parseJson(array.get(1)), parser.parseJson(array.get(2)) };
/*    */       }
/*    */     }
/* 30 */     else if (element.isJsonPrimitive()) {
/*    */       
/* 32 */       this.speed = parser.parseJson(element);
/*    */     } 
/*    */     
/* 35 */     return super.fromJson(element, parser);
/*    */   }
/*    */ 
/*    */ 
/*    */   
/*    */   public JsonElement toJson() {
/* 41 */     if (this.direction != null) {
/*    */       
/* 43 */       JsonArray array = new JsonArray();
/*    */       
/* 45 */       for (MolangExpression expression : this.direction)
/*    */       {
/* 47 */         array.add(expression.toJson());
/*    */       }
/*    */       
/* 50 */       return (JsonElement)array;
/*    */     } 
/*    */     
/* 53 */     return this.speed.toJson();
/*    */   }
/*    */ 
/*    */ 
/*    */   
/*    */   public boolean canBeEmpty() {
/* 59 */     return true;
/*    */   }
/*    */ 
/*    */ 
/*    */   
/*    */   public void apply(BedrockEmitter emitter, BedrockParticle particle) {
/* 65 */     if (this.direction != null) {
/*    */       
/* 67 */       particle.speed.set(
/* 68 */           (float)this.direction[0].get(), 
/* 69 */           (float)this.direction[1].get(), 
/* 70 */           (float)this.direction[2].get());
/*    */     
/*    */     }
/*    */     else {
/*    */       
/* 75 */       float speed = (float)this.speed.get();
/*    */       
/* 77 */       particle.speed.scale(speed);
/*    */     } 
/*    */   }
/*    */ 
/*    */ 
/*    */   
/*    */   public int getSortingIndex() {
/* 84 */     return 5;
/*    */   }
/*    */ }


/* Location:              D:\fanbian\[D][龙之核心]DragonCore-2.6.0.3.jar!\blockbuster\components\motion\BedrockComponentInitialSpeed.class
 * Java compiler version: 8 (52.0)
 * JD-Core Version:       1.1.3
 */